home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / mail / Spam_O_Matic.lha / Spam-O-Matic.thor < prev    next >
Text File  |  1996-12-02  |  3KB  |  129 lines

  1. /* $VER: SOM.thor 1.1 (01.12.96)
  2.  *
  3.  * Saves the current message in Thor, and forwards the message
  4.  * to several "interested" parties.
  5.  *
  6.  * PLEASE don't use this as a toy!
  7.  * The only way our concerns will be taken seriously is if WE
  8.  * take them seriously.
  9.  *
  10.  * Concept & Original Script by: Kirk Strauser <kstrauser@gxl.com>
  11.  * Re-written by: Adrian Knight <ajk@dial.pipex.com>
  12.  *           and: Kirk Strauser
  13.  */
  14.  
  15. options results
  16. options failat 31
  17.  
  18. thorport = address()
  19. if left(thorport, 5) ~= 'THOR.' then do
  20.   say 'Cannot find thorport.'
  21.   exit
  22. end
  23.  
  24. if ~show('p', 'BBSREAD') then do
  25.   address command
  26.   "run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead"
  27.   "WaitForPort BBSREAD"
  28. end
  29.  
  30. address(thorport)
  31.  
  32. CURRENTMSG stem MSG
  33. if (rc ~= 0) then call disreq("No current message.")
  34.  
  35. SAVEMESSAGE CURRENT FILE "T:Spam.temp1"
  36. if(rc ~= 0) then call disreq("Unable to save current message.")
  37.  
  38. /* Choose between Thor and YAM mailers */
  39. REQUESTNOTIFY TEXT '"Which mailer do you want to use to send these messages?"' BT '"_THOR|_YAM"'
  40. if (rc ~= 0) then call disreq("No valid mailer selected.")
  41. poster=result
  42.  
  43. if poster=1 then do
  44.    REQUESTNOTIFY TEXT '"Mark message as urgent?"' BT '"_Yes|_No"'
  45.    if (rc ~= 0) then call disreq
  46.    flag = result
  47. end
  48.  
  49. address BBSREAD
  50.  
  51. READBRMESSAGE bbsname '"'MSG.BBSNAME'"' confname '"'MSG.CONFNAME'"' msgnr MSG.MSGNR headstem HEADTAGS textstem TEXTTAGS 
  52. if (rc ~= 0) then call disreq
  53.  
  54. UNIQUEMSGFILE bbsname '"'MSG.BBSNAME'"' stem tmp
  55. if (rc ~= 0) then call disreq
  56.  
  57. /* Get the domain in a seperate variable */
  58. parse var HEADTAGS.FROMADDR j"@"domain
  59. if domain='' then call disreq("Unable to find senders domain name")
  60.  
  61. /* Build the outgoing message */
  62. address command 'Join THOR:rexx/SpamHeader T:Spam.temp1 THOR:rexx/SpamFooter as 'tmp.NAME
  63. if (rc ~= 0) then call disreq("Unable to build message file.")
  64.  
  65. /* Use the appropriate mailer to send it */
  66. if (poster = 1) then call WriteThorMessage
  67.    else call WriteYamMessage
  68.  
  69. if (rc ~= 0) then call disreq
  70. call cleanup
  71.  
  72.  
  73. WriteThorMessage:
  74.    address BBSREAD
  75.    EVE_ENTERMSG = 0
  76.    drop EVENT.
  77.    EVENT.TONAME = HEADTAGS.FROMNAME || ',Postmaster,Bureau of Consumer Services,National Fraud Information Center'
  78.    EVENT.TOADDR = HEADTAGS.FROMADDR || ',postmaster@' || domain || ',bbroder@ftc.gov,nfic@internetmci.com'
  79.    EVENT.SUBJECT = 'Usenet spam/mail fraud'
  80.    EVENT.CONFERENCE = 'EMail'
  81.    EVENT.MSGFILE = tmp.NAME
  82.    EVENT.URGENT = flag
  83.    WRITEBREVENT bbsname '"'MSG.BBSNAME'"' event EVE_ENTERMSG stem EVENT
  84. return
  85.  
  86.  
  87. WriteYamMessage:
  88.    yap=1
  89.    if ~show('p','YAM') then do
  90.       address command
  91.       'Run <>NIL: YAM:YAM'
  92.       'WaitForPort "YAM"'
  93.       yap=0
  94.    end
  95.  
  96.    if ~show('p','YAM') then call disreq("Unable to load YAM.")
  97.  
  98.    address 'YAM'
  99.    MAILWRITE
  100.  
  101.    /* This line MUST be punctuated exactly like this! */
  102.    'WRITESUBJECT "Usenet spam/mail fraud"'
  103.    WRITEMAILTO HEADTAGS.FROMADDR || ',postmaster@' || domain || ',bbroder@ftc.gov,nfic@internetmci.com'
  104.    WRITELETTER tmp.NAME
  105.    'REQUEST "Should this be sent or queued?" "Send|Queue"'
  106.    if (result = 0) then writequeue
  107.       else writesend
  108.  
  109.    /* Kill YAM if we started it */
  110.    if ~yap then 'QUIT'
  111. return
  112.  
  113.  
  114. disreq:
  115.   PARSE ARG distext
  116.   if distext = '' then do
  117.     if address() = "BBSREAD" then distext=BBSREAD.LASTERROR
  118.     else distext=THOR.LASTERROR
  119.   end
  120.   address(thorport)
  121.   REQUESTNOTIFY TEXT '"' distext '"' BT '"_Abort"'
  122.   call cleanup
  123. return
  124.  
  125.  
  126. cleanup:
  127.   address command 'delete >nil: T:Spam.temp?'
  128. exit
  129.